Learn R Programming

EMCluster (version 0.2-16)

EM Algorithm: EM Algorithm for model-based clustering

Description

These are core functions of EMCluster performing EM algorithm for model-based clustering of finite mixture multivariate Gaussian distribution with unstructured dispersion.

Usage

emcluster(x, emobj = NULL, pi = NULL, Mu = NULL, LTSigma = NULL,
          lab = NULL, EMC = .EMC, assign.class = FALSE)
shortemcluster(x, emobj = NULL, pi = NULL, Mu = NULL,
               LTSigma = NULL, maxiter = 100, eps = 1e-2)
simple.init(x, nclass = 1)

Value

The emcluster returns an object emobj with class emret

which can be used in post-process or other functions such as

e.step, m.step, assign.class, em.ic, and dmixmvn.

The shortemcluster also returns an object emobj with class

emret which is the best of several random initializations.

The simple.init utilizes rand.EM to obtain a simple initial.

Arguments

x

the data matrix, dimension \(n\times p\).

emobj

the desired model which is a list mainly contains pi, Mu, and LTSigma, usually a returned object from init.EM.

pi

the mixing proportion, length \(K\).

Mu

the centers of clusters, dimension \(K\times p\).

LTSigma

the lower triangular matrices of dispersion, \(K\times p(p+1)/2\).

lab

labeled data for semi-supervised clustering, length \(n\).

EMC

the control for the EM iterations.

assign.class

if assigning class id.

maxiter

maximum number of iterations.

eps

convergent tolerance.

nclass

the desired number of clusters, \(K\).

Author

Wei-Chen Chen wccsnow@gmail.com and Ranjan Maitra.

Details

The emcluster mainly performs EM iterations starting from the given parameters emobj without other initializations.

The shortemcluster performs short-EM iterations as described in init.EM.

References

https://www.stat.iastate.edu/people/ranjan-maitra

See Also

init.EM, e.step, m.step, .EMControl.

Examples

Run this code

library(EMCluster, quietly = TRUE)
set.seed(1234)
x1 <- da1$da

emobj <- simple.init(x1, nclass = 10)
emobj <- shortemcluster(x1, emobj)
summary(emobj)

ret <- emcluster(x1, emobj, assign.class = TRUE)
summary(ret)

Run the code above in your browser using DataLab